package anni.aerp2.domain;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import anni.asecurity.domain.Region;

import anni.core.grid.LongGridBean;

import org.hibernate.annotations.GenericGenerator;


/**
 * Erp2Supplier generated by Lingo.
 *
 * @author Lingo
 * @since 2007年11月03日 下午 12时54分39秒31
 */
@Entity
@Table(name = "A_ERP2_SUPPLIER")
public class Erp2Supplier extends LongGridBean {
    /** * serial. */
    static final long serialVersionUID = 0L;

    /** * id. */
    private Long id;

    /** * name. */
    private String name;

    /** * type. */
    private Integer type;

    /** * linkman. */
    private String linkman;

    /** * lead. */
    private String lead;

    /** * tel. */
    private String tel;

    /** * Region. */
    private Region region;

    /** * area.*/
    private String area;

    /** * code. */
    private String code;

    /** * zip. */
    private String zip;

    /** * fax. */
    private String fax;

    /** * email. */
    private String email;

    /** * homepage. */
    private String homepage;

    /** * address. */
    private String address;

    /** * rank. */
    private Integer rank;

    /** * descn. */
    private String descn;

    /** * erp2InviteBids. */
    private Set<Erp2InviteBid> erp2InviteBids = new HashSet<Erp2InviteBid>(0);

    /** * erp2Products. */
    private Set<Erp2Product> erp2Products = new HashSet<Erp2Product>(0);

    /** * erp2BuyOrders. */
    private Set<Erp2BuyOrder> erp2BuyOrders = new HashSet<Erp2BuyOrder>(0);

    /** * erp2BuyContracts. */
    private Set<Erp2BuyContract> erp2BuyContracts = new HashSet<Erp2BuyContract>(0);

    /** * 构造方法. */
    public Erp2Supplier() {
    }

    /** * @return id. */
    @GenericGenerator(name = "generator", strategy = "increment")
    @Id
    @GeneratedValue(generator = "generator")
    @Column(name = "ID", unique = true, nullable = false)
    public Long getId() {
        return id;
    }

    /** * @param id Long. */
    public void setId(Long id) {
        this.id = id;
    }

    /** * @return name. */
    @Column(name = "NAME", length = 50)
    public String getName() {
        return name;
    }

    /** * @param name String. */
    public void setName(String name) {
        this.name = name;
    }

    /** * @return type. */
    @Column(name = "TYPE")
    public Integer getType() {
        return type;
    }

    /** * @param type Integer. */
    public void setType(Integer type) {
        this.type = type;
    }

    /** * @return linkman. */
    @Column(name = "LINKMAN", length = 50)
    public String getLinkman() {
        return linkman;
    }

    /** * @param linkman String. */
    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    /** * @return lead. */
    @Column(name = "LEAD", length = 50)
    public String getLead() {
        return lead;
    }

    /** * @param lead String. */
    public void setLead(String lead) {
        this.lead = lead;
    }

    /** * @return tel. */
    @Column(name = "TEL", length = 50)
    public String getTel() {
        return tel;
    }

    /** * @param tel String. */
    public void setTel(String tel) {
        this.tel = tel;
    }

    /** * @return Region. */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "REGION_ID")
    public Region getRegion() {
        return region;
    }

    /** * @param region Region. */
    public void setRegion(Region region) {
        this.region = region;
    }

    /** * @return area. */
    @Column(name = "AREA", length = 50)
    public String getArea() {
        return area;
    }

    /** * @param area String. */
    public void setArea(String area) {
        this.area = area;
    }

    /** * @return code. */
    @Column(name = "CODE", length = 50)
    public String getCode() {
        return code;
    }

    /** * @param code String. */
    public void setCode(String code) {
        this.code = code;
    }

    /** * @return zip. */
    @Column(name = "ZIP", length = 50)
    public String getZip() {
        return zip;
    }

    /** * @param zip String. */
    public void setZip(String zip) {
        this.zip = zip;
    }

    /** * @return fax. */
    @Column(name = "FAX", length = 50)
    public String getFax() {
        return fax;
    }

    /** * @param fax String. */
    public void setFax(String fax) {
        this.fax = fax;
    }

    /** * @return email. */
    @Column(name = "EMAIL", length = 50)
    public String getEmail() {
        return email;
    }

    /** * @param email String. */
    public void setEmail(String email) {
        this.email = email;
    }

    /** * @return homepage. */
    @Column(name = "HOMEPAGE", length = 50)
    public String getHomepage() {
        return homepage;
    }

    /** * @param homepage String. */
    public void setHomepage(String homepage) {
        this.homepage = homepage;
    }

    /** * @return address. */
    @Column(name = "ADDRESS", length = 50)
    public String getAddress() {
        return address;
    }

    /** * @param address String. */
    public void setAddress(String address) {
        this.address = address;
    }

    /** * @return rank. */
    @Column(name = "RANK")
    public Integer getRank() {
        return rank;
    }

    /** * @param rank Integer. */
    public void setRank(Integer rank) {
        this.rank = rank;
    }

    /** * @return descn. */
    @Column(name = "DESCN", length = 2000)
    @Lob
    public String getDescn() {
        return descn;
    }

    /** * @param descn String. */
    public void setDescn(String descn) {
        this.descn = descn;
    }

    /** * @return erp2InviteBids. */
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "erp2Supplier")
    public Set<Erp2InviteBid> getErp2InviteBids() {
        return erp2InviteBids;
    }

    /** * @param erp2InviteBids Set. */
    public void setErp2InviteBids(Set<Erp2InviteBid> erp2InviteBids) {
        this.erp2InviteBids = erp2InviteBids;
    }

    /** * @return erp2Products. */
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "erp2Supplier")
    public Set<Erp2Product> getErp2Products() {
        return erp2Products;
    }

    /** * @param erp2Products Set. */
    public void setErp2Products(Set<Erp2Product> erp2Products) {
        this.erp2Products = erp2Products;
    }

    /** * @return erp2BuyOrders. */
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "erp2Supplier")
    public Set<Erp2BuyOrder> getErp2BuyOrders() {
        return erp2BuyOrders;
    }

    /** * @param erp2BuyOrders Set. */
    public void setErp2BuyOrders(Set<Erp2BuyOrder> erp2BuyOrders) {
        this.erp2BuyOrders = erp2BuyOrders;
    }

    /** * @return erp2BuyContracts. */
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "erp2Supplier")
    public Set<Erp2BuyContract> getErp2BuyContracts() {
        return erp2BuyContracts;
    }

    /** * @param erp2BuyContracts Set. */
    public void setErp2BuyContracts(Set<Erp2BuyContract> erp2BuyContracts) {
        this.erp2BuyContracts = erp2BuyContracts;
    }
}
